البرمجة

الجمل الشرطية في PHP

الجمل الشرطية في PHP: شرح شامل وموسع

تعتبر الجمل الشرطية من الركائز الأساسية في برمجة أي لغة، وPHP ليست استثناءً. تلعب الجمل الشرطية دورًا مهمًا في التحكم بتدفق البرنامج واتخاذ القرارات البرمجية بناءً على شروط محددة. من خلال هذا المقال، سيتم التطرق بشكل مفصل إلى الجمل الشرطية في PHP، مع شرح أنواعها، طرق استخدامها، تطبيقاتها العملية، والأمثلة التفصيلية التي توضح كيفية الاستفادة منها في تطوير المواقع والتطبيقات.


تعريف الجمل الشرطية في PHP

الجمل الشرطية (Conditional Statements) هي عبارة عن بنى برمجية تسمح للبرنامج باتخاذ مسار معين من التنفيذ اعتمادًا على تحقق شرط معين. فإذا كان الشرط صحيحًا (True) ينفذ جزء معين من الكود، وإذا كان خاطئًا (False) يتبع مسارًا آخر أو يتجاهل تنفيذ هذا الجزء.

في لغة PHP، مثل باقي لغات البرمجة، تُستخدم الجمل الشرطية للتحكم في تدفق البرنامج، مما يجعل الكود أكثر ديناميكية وفعالية.


أنواع الجمل الشرطية في PHP

تقدم PHP عدة أنواع من الجمل الشرطية، أهمها:

  1. جملة if

  2. جملة if…else

  3. جملة if…elseif…else

  4. جملة switch

  5. جملة ternary operator (العملية الشرطية الثلاثية)

  6. جملة null coalescing operator (??)


1. جملة if

تعتبر أبسط أشكال الجمل الشرطية، وهي تتحقق من شرط وحيد فقط، فإذا تحقق الشرط كانت النتيجة تنفيذ الكود المرفق معها.

الصيغة العامة:

php
if (condition) { // تنفيذ هذا الكود إذا تحقق الشرط }

مثال:

php
$age = 20; if ($age >= 18) { echo "يمكنك التصويت"; }

في المثال أعلاه، يتم فحص ما إذا كانت قيمة المتغير $age أكبر أو تساوي 18، فإذا تحقق الشرط يتم طباعة “يمكنك التصويت”.


2. جملة if…else

تستخدم هذه الجملة في حالة وجود مسارين محتملين للتنفيذ، أحدهما يتم تنفيذه إذا تحقق الشرط، والآخر إذا لم يتحقق.

الصيغة العامة:

php
if (condition) { // تنفيذ إذا تحقق الشرط } else { // تنفيذ إذا لم يتحقق الشرط }

مثال:

php
$score = 70; if ($score >= 50) { echo "نجحت في الامتحان"; } else { echo "راسب في الامتحان"; }

في المثال، إذا كانت النتيجة 50 أو أكثر، يتم طباعة “نجحت في الامتحان”، وإذا كانت أقل، يتم طباعة “راسب في الامتحان”.


3. جملة if…elseif…else

هذه الجملة تُستخدم عندما توجد عدة شروط يجب التحقق منها تباعًا، بحيث يتم تنفيذ أول شرط يتحقق.

الصيغة العامة:

php
if (condition1) { // تنفيذ إذا تحقق الشرط 1 } elseif (condition2) { // تنفيذ إذا تحقق الشرط 2 } else { // تنفيذ إذا لم يتحقق أي من الشروط السابقة }

مثال:

php
$grade = 85; if ($grade >= 90) { echo "ممتاز"; } elseif ($grade >= 75) { echo "جيد جدًا"; } elseif ($grade >= 60) { echo "جيد"; } else { echo "راسب"; }

في هذا المثال، يتم تقييم الدرجات بطريقة متدرجة ويُطبع التقييم المناسب حسب قيمة المتغير $grade.


4. جملة switch

تُستخدم جملة switch عندما يكون هناك متغير يحتاج إلى مقارنة قيمته مع عدة حالات محددة، وتُفضل على استخدام if…elseif في حالة وجود العديد من الشروط التي تقارن بقيم ثابتة.

الصيغة العامة:

php
switch (variable) { case value1: // تنفيذ هذا الجزء إذا كانت قيمة المتغير مساوية value1 break; case value2: // تنفيذ هذا الجزء إذا كانت قيمة المتغير مساوية value2 break; default: // تنفيذ هذا الجزء إذا لم تطابق أي حالة }

مثال:

php
$day = 3; switch ($day) { case 1: echo "الإثنين"; break; case 2: echo "الثلاثاء"; break; case 3: echo "الأربعاء"; break; default: echo "يوم غير معروف"; }

في المثال، إذا كانت قيمة $day هي 3، فسيتم طباعة “الأربعاء”.


5. العملية الشرطية الثلاثية (Ternary Operator)

تُعتبر طريقة مختصرة لكتابة جملة شرطية if…else في سطر واحد، وتستخدم للقرارات السريعة والبسيطة.

الصيغة العامة:

php
(condition) ? expression_if_true : expression_if_false;

مثال:

php
$age = 17; echo ($age >= 18) ? "بالغ" : "قاصر";

في هذا المثال، يتم طباعة “بالغ” إذا كان العمر 18 أو أكثر، و”قاصر” إذا كان أقل.


6. null coalescing operator (??)

وهي طريقة للتحقق من وجود قيمة لمتغير أو عنصر ما، فإذا لم يكن موجودًا يتم تعيين قيمة افتراضية.

الصيغة العامة:

php
$value = $variable ?? 'قيمة افتراضية';

مثال:

php
$username = $_GET['user'] ?? 'ضيف'; echo $username;

في هذا المثال، إذا كانت قيمة $_GET['user'] موجودة، تُستخدم، وإلا يتم استخدام “ضيف”.


كيفية كتابة شروط مركبة في PHP

يمكن دمج أكثر من شرط باستخدام عوامل الربط المنطقية المختلفة، مثل:

  • and (&&): تعني أن الشرطين يجب أن يكونا صحيحين معًا.

  • or (||): تعني أن أحد الشرطين على الأقل يجب أن يكون صحيحًا.

  • not (!): تعني نفي الشرط.

مثال:

php
$age = 25; $hasID = true; if ($age >= 18 && $hasID) { echo "يمكنك الدخول"; } else { echo "لا يمكنك الدخول"; }

في المثال، يجب أن يكون الشخص بالغًا (18 أو أكثر) ولديه بطاقة هوية ($hasID = true) حتى يسمح له بالدخول.


تطبيقات الجمل الشرطية في تطوير الويب باستخدام PHP

الجمل الشرطية في PHP تستخدم في الكثير من السيناريوهات العملية أثناء تطوير المواقع الإلكترونية، ومنها:

  • التحقق من صحة البيانات المُدخلة من المستخدم (Validation).

  • التحكم في صلاحيات المستخدم (مثل: المسؤول، المستخدم العادي).

  • اختيار المحتوى الذي يعرضه الموقع بناءً على تفضيلات أو موقع المستخدم.

  • إدارة عمليات التسجيل والدخول والخروج (Login/Logout).

  • معالجة المدخلات والرد عليها بطريقة ديناميكية.


مقارنة بين جمل if و switch

العامل جملة if جملة switch
عدد الشروط يمكن استخدامها مع عدد غير محدود من الشروط أكثر فعالية مع الحالات المحددة والثابتة
نوع الشروط تدعم شروط منطقية معقدة ومتعددة تدعم فقط مقارنة القيم الثابتة
قابلية القراءة قد تصبح معقدة مع العديد من الشروط أكثر وضوحًا وسهولة في القراءة
الأداء قد تكون أبطأ في حالات الشروط العديدة أكثر كفاءة مع عدد كبير من الحالات

نصائح عملية لاستخدام الجمل الشرطية في PHP

  • حافظ على بساطة الشروط قدر الإمكان لتسهيل فهم الكود وصيانته.

  • استخدم جملة switch عندما تتعامل مع حالات كثيرة تتعلق بقيم متغيرة واحدة.

  • استغل العملية الشرطية الثلاثية لكتابة شروط بسيطة وقصيرة.

  • لا تكثر من التعشيش (nested ifs) داخل بعضها، لأن ذلك قد يصعب قراءة الكود.

  • استعمل التعليقات لتوضيح المنطق الشرطي في حالات الشروط المعقدة.

  • تأكد من اختبار جميع الحالات الممكنة في شروطك لضمان استقرار التطبيق.


شرح مفصل حول الجمل الشرطية المتداخلة (Nested Conditionals)

في بعض السيناريوهات المعقدة، تحتاج إلى استخدام شروط داخل شروط أخرى، وهذا ما يُعرف بالتعشيش (nesting). التعشيش يتيح لك التحقق من شروط متعددة بشكل متسلسل، وهذا مفيد جدًا في التطبيقات التي تعتمد على منطق متشعب.

مثال:

php
$age = 20; $hasLicense = true; if ($age >= 18) { if ($hasLicense) { echo "يمكنك قيادة السيارة"; } else { echo "يجب أن تحصل على رخصة قيادة أولاً"; } } else { echo "عُمر القيادة غير مناسب"; }

في هذا المثال، يتم أولاً التحقق من العمر، ثم في حالة تحقق الشرط يتم التحقق من وجود رخصة القيادة.


الجمل الشرطية والتعامل مع القيم الفارغة أو غير المعرفة

في PHP من الشائع أن نتعامل مع متغيرات قد تكون غير معرفة أو تحتوي على قيمة فارغة، مما قد يسبب أخطاء في التنفيذ إذا لم يتم التحقق منها.

  • دالة isset(): تتحقق من وجود المتغير وليس قيمته فقط.

  • دالة empty(): تتحقق من كون المتغير فارغًا (0، “”, null، false…).

مثال:

php
if (isset($username) && !empty($username)) { echo "مرحبا، " . $username; } else { echo "الرجاء إدخال اسم المستخدم"; }

استخدام الجمل الشرطية في التعامل مع النماذج (Forms) في PHP

في برمجة نماذج الويب، من الضروري التحقق من صحة البيانات المرسلة من قبل المستخدم. تعتمد معظم المعالجات على الجمل الشرطية لفحص وجود البيانات وصحتها.

مثال عملي على التحقق من إدخال اسم المستخدم وكلمة المرور:

php
if ($_SERVER["REQUEST_METHOD"] == "POST") { if (!empty($_POST["username"]) && !empty($_POST["password"])) { $username = $_POST["username"]; $password = $_POST["password"]; // استمر في معالجة تسجيل الدخول echo "تم تسجيل الدخول بنجاح"; } else { echo "يرجى ملء جميع الحقول"; } }

استخدام الجمل الشرطية مع دوال PHP المتقدمة

يمكن دمج الجمل الشرطية مع دوال PHP المختلفة لإنشاء تطبيقات أكثر ديناميكية، مثل التعامل مع الملفات، الجلسات، قواعد البيانات، وغيرها.

مثلاً، يمكن استخدام شرط للتحقق من وجود ملف:

php
if (file_exists("data.txt")) { echo "الملف موجود"; } else { echo "الملف غير موجود"; }

أو للتحقق من وجود جلسة مستخدم مسجلة:

php
session_start(); if (isset($_SESSION['user_id'])) { echo "مرحبًا بك مجددًا"; } else { echo "الرجاء تسجيل الدخول"; }

ملخص جدول أنواع الجمل الشرطية في PHP

نوع الجملة الاستخدام الرئيسي المزايا العيوب
if شرط واحد فقط بسيطة وسهلة الاستخدام غير مناسبة لعدد كبير من الشروط
if…else شرط ثنائي (صحيح/خطأ) تسمح بخيارات واضحة تصبح معقدة مع شروط متعددة
if…elseif…else عدة شروط متسلسلة تسمح بعدة خيارات متتالية يمكن أن تصبح طويلة ومعقدة
switch مقارنة قيمة متغير مع عدة حالات ثابتة أفضل للعديد من الحالات الثابتة لا تدعم شروط منطقية معقدة
ternary operator (?:) اختصار if…else لشرط بسيط اختصار وحجم كود أقل أقل وضوحًا للمبتدئين
null coalescing (??) تعيين قيمة افتراضية إذا كانت القيمة غير موجودة تسهل التعامل مع القيم الفارغة يقتصر على فحص وجود القيمة فقط

الخاتمة

الجمل الشرطية تشكل حجر الأساس في برمجة PHP، فهي تعطي القدرة على اتخاذ القرارات داخل البرنامج، مما يجعل التطبيقات والمواقع أكثر تفاعلية وديناميكية. من خلال إتقان استخدام الجمل الشرطية، يمكن للمبرمج التحكم الكامل في تدفق البرنامج، والتعامل مع مختلف الحالات والسيناريوهات بكفاءة عالية.

تتفاوت طرق استخدام الجمل الشرطية حسب الحاجة، من الشروط البسيطة إلى التعشيش المعقد، ومن استخدام if العادي إلى switch الأكثر تنظيمًا، وصولاً إلى العمليات الشرطية المختصرة التي توفر الوقت والمساحة. من المهم فهم كل نوع واختيار الأنسب حسب طبيعة المشكلة التي يتم التعامل معها.

يجب على المطورين أيضًا مراعاة ممارسات البرمجة النظيفة والفعالة عند كتابة الجمل الشرطية، مثل تجنب التعشيش الزائد، استخدام التعليقات، وضمان اختبار جميع الحالات المحتملة. هذا يساهم في جعل الكود أكثر وضوحًا وسهل الصيانة، ما ينعكس إيجابيًا على جودة البرمجيات المنتجة.


المصادر والمراجع

  1. PHP Manual – Control Structures

  2. W3Schools – PHP If…Else